﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Iit.ITBI.MDSManager
{
    /// <summary>
    /// Represent the valid values for the sync state between to MDS objects.
    /// </summary>
    public enum MDSAttributeSyncState:byte
    {
        Unknown = 0,
        Identical = 1,
        OnlyInSlave = 2,
        OnlyInMaster = 3,
        Invalid = 4,
        Different = 5
    }

    /// <summary>
    /// Represent the valid values for the sync state between to MDS objects.
    /// </summary>
    public enum MDSEntitySyncState : byte
    {
        Unknown = 0,
        Identical = 1,
        New = 2,
        Different = 3
    }


    /// <summary>
    /// Encapsulate the either slave operationResult master types into an enum.
    /// </summary>
    public enum SlaveOrMaster : byte
    {
        Unknown = 0, 
        Master = 1,
        Slave = 2
        
    }

    /// <summary>
    /// Represents all the known query schema used by the MDS data layer
    /// Made to allow for making versions for queries
    /// Use this as masterAttributeMetadata "contract" between the MDSSqlWrapper class that is actually fetching the data
    /// and the other classes that use the DataTable to map the data using column names.
    /// </summary>
    public enum MDSQueryVersion : byte
    {
        Unknown = 0, 
        GetMasterToSlaveMappingV1 = 1,
        GetAttributeDetailesV1 = 2,
        GetEntitySyncStateV1 = 3,
        DeletedMembersV1 = 4
        
    }

    /// <summary>
    /// Represents all the known query schema used by the MDS data layer
    /// Made to allow for making versions for queries
    /// Use this as masterAttributeMetadata "contract" between the MDSSqlWrapper class that is actually fetching the data
    /// and the other classes that use the DataTable to map the data using column names.
    /// </summary>
    public enum MDSMappingState : byte
    {
        Unknown = 0,
        Valid = 1,
        Deleted = 2,
        NotSupported = 3
    }
}
